 
package com.xbongbong.message.domain.entity;

import com.xbongbong.paas.toolbox.util.DateTimeUtil;
import com.xbongbong.paas.toolbox.wrap.Entity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * 消息 持久层 对象
 *
 * @author 匿名
 * 创建时间：很早时间
 * 修改时间：2017/12/16 下午4:45 by 章华隽
 * @version 3.14.2
 * @since 很早版本
 */
@Getter
@Setter
@ToString
public class PushEntity extends Entity{

	private static final long serialVersionUID = -8102381265143563695L;

	public PushEntity() {
		id = null;
		isPush = 0;
		isRemind = 0;
		addTime = DateTimeUtil.getInt();
		updateTime = addTime;
		del = 0;
		taskId = 0L;
		status = 0;
	}

	public PushEntity(String corpid, Integer refEntity, Long refId, String refArray,
                      Integer type, Integer subType, String pushObject, String msg, Integer isRemind, Long pushTime) {
		this();
		this.corpid = corpid;
		this.refEntity = refEntity;
		this.refId = refId;
		this.refArray = refArray;
		this.type = type;
		this.subType = subType;
		this.pushObject = pushObject;
		this.msg = msg;
		this.isRemind = isRemind;
		this.pushTime = pushTime;
	}

	//========== properties ==========

	/**
	 * 主键
	 */
	private Long id;
	/**
	 * 公司ID
	 */
	private String corpid;
	/**
	 * 对象类型， 模块标识
	 */
	private Integer refEntity;
	/**
	 * 对象id
	 */
	private Long refId;
	/**
	 * 对象 Id JsonArray 格式字符串
	 */
	private String refArray;
	/**
	 * 对象类型，考虑兼容性，使用字符串
	 */
	private String refType;
	/**
	 * 推送类型
	 */
	private Integer type;
	/**
	 * 推送子类型
	 */
	private Integer subType;
	/**
	 * 推送对象{"type" : "|1|2|","role" : {"enable":,"value":[]}, "dep" :  {"enable":,"value":[]}, "user" :  {"enable":,"value":[]}, "manager" :  {"enable":,"value":[]}}
	 */
	private String pushObject;
	/**
	 * 推送内容
	 */
	private String msg;
	/**
	 * 推送时间
	 */
	private Long pushTime;
	/**
	 * 是否已推送
	 */
	private Integer isPush;
	/**
	 * 是否为跟进提醒,0：普通消息；1：跟进提醒
	 */
	private Integer isRemind;
	/**
	 * 添加时间
	 */
	private Long addTime;
	/**
	 * 修改时间
	 */
	private Long updateTime;
	/**
	 * 删除标志
	 */
	private Integer del;

	/**
	 * 钉钉发送消息后返回的taskId
	 */
	private Long taskId;
	/**
	 * 钉钉消息状态查询，0默认，1全部失败，2部分成功，3全部成功，4全为无效推送对象，5其他未知问题
	 */
	private Integer status;


	/**
	 * PushLink 的 Id（由 PushLink 来动态添加该字段）
	 */
	private Long pushLinkId;
	/**
	 * 是否已读（由 PushLink 来动态添加该字段）
	 */
	private Integer isRead;

	/**
	 * 销售简报推送用（用来标记是统计的哪一天的简报）
	 * 日开始
	 */
	private Integer start;
	/**
	 * 日结束
	 */
	private Integer end;
}